home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 050 / tpcmag.arc / CIRCLE.PAS next >
Pascal/Delphi Source File  |  1986-05-14  |  1KB  |  44 lines

  1. Program circle;
  2.  
  3. var
  4.  x, y, r, c : integer;
  5.  
  6. (*  procedure to produce a circle on the screen from PC World May 1986
  7.     page 350 by Dan Leska of Nichols, NY.  *)
  8.  
  9. Procedure circle(xorigin,yorigin,radius,color : integer);
  10.  
  11. var
  12.   incrmnt, xequat : real;
  13.  
  14. begin
  15.   incrmnt := radius + 0.25;
  16.   repeat
  17.     incrmnt := incrmnt - 0.25;
  18.     xequat := sqrt(sqr(radius) - sqr(incrmnt));
  19.     plot (round(xorigin + xequat), round(yorigin + incrmnt), color);
  20.     plot (round(xorigin - xequat), round(yorigin - incrmnt), color);
  21.     plot (round(xorigin + xequat), round(yorigin - incrmnt), color);
  22.     plot (round(xorigin - xequat), round(yorigin + incrmnt), color);
  23.   until (incrmnt = 0);;
  24.   draw (xorigin - round(radius * 0.12), yorigin + radius,
  25.         xorigin + round(radius * 0.15), yorigin + radius, color);
  26.   draw (xorigin - round(radius * 0.12), yorigin - radius,
  27.         xorigin + round(radius * 0.15), yorigin - radius, color);
  28.  
  29. end; { procedure circle(xorigin,yorigin,radius,color : integer); }
  30.  
  31. {demonstration program begins here}
  32.  
  33. begin
  34.   x := 160;
  35.   y := 100;
  36.   r := 50;
  37.   c := 6;
  38.   GraphMode;
  39.   circle (x,y,r,c);
  40.   while not keypressed do;
  41.   TextMode(C80);
  42.   TextColor(green);
  43. end. {circle}
  44.